package com.liner.homework;

import java.util.Scanner;

public class Homework01 {
    public static void main(String[] args) {

        /*
        * 1. 运算符的练习：算术

       - 输出几个整数取模，验证结果
       - 声明两个整型变量，演示单独使用时的自增和自减
       - 声明几个整型变量，演示被使用时的自增和自减

        *
        * */


        //输出几个整数取模，验证结果
        System.out.println(12 % 2); //0
        System.out.println(0 % 2); //0
        System.out.println(6 % 5); //1

        //声明两个整型变量，演示单独使用时的自增和自减
        int num1 = 12, num2 = 5;
        num1++; //13
        num2--; //4
        System.out.println(num1 + "\t" + num2);

        //声明几个整型变量，演示被使用时的自增和自减
        int num3 = 12, num4 = 5;
        int num5 = num3++;
        int num6 = --num4;
        System.out.println(num3 + "\t" + num4 + "\t" + num5 + "\t" + num6);
        //num3 = 13, num4 = 4 , num5 = 12, num6 = 4


        /*
        *
        1. 运算符的练习：关系

       - 声明几个变量，演示最基本的>，<，>=，<=，==，!=操作
       - 演示关系运算符和算术运算符联合使用的效果

        *
        * */

        //声明几个变量，演示最基本的>，<，>=，<=，==，!=操作
        int a = 12, b = 43;
        System.out.println(a > b); //false
        System.out.println(a < b);  //true
        System.out.println(a >= b); //false
        System.out.println(a <= b); //true
        System.out.println(a == b); //false
        System.out.println(a != b); //true
        //演示关系运算符和算术运算符联合使用的效果
        System.out.println(a++ <= --b); //true
        System.out.println(a++ == --b); //false
        System.out.println(a++ != --b); //true


        /*
        *
        *1. 运算符的练习：逻辑

       - 声明三个整型变量，演示&&和||，演示!
         - &&的演示要求：true+false、false+true、true+true、false+false
         - ||的演示要求：true+false、false+true、true+true、false+false
         - !的演示要求：true、false
       - 演示短路&&与短路||
        * */

        //  声明三个整型变量，演示&&和||，演示!
        int c = 12, d = 34, e = 54;

        //   &&的演示要求：true+false、false+true、true+true、false+false
        System.out.println(c < d && e <= d); // true+false false
        System.out.println(c > d && e != d); // false+true false
        System.out.println(c < d && e != d); // true+true true
        System.out.println(c > d && e < d); //false+false false

        //   ||的演示要求：true+false、false+true、true+true、false+false
        System.out.println(d < e || e++ == d); // true+false true
        System.out.println(c > d || e > d); // false+true true
        System.out.println(c != d || --e > d++); // true+true true
        System.out.println(c > d || e < d); //false+false false

        //  !的演示要求：true、false
        System.out.println(!(e == c)); //true
        System.out.println(!(c != d)); //false

        //   演示短路&&与短路||
        System.out.println(c != d || c++ > e); //true
        System.out.println(c == d && --e > d); //false


        /*

        1. 运算符的练习：赋值

        - 声明一个整型变量，演示扩展赋值+=、-=、*=、/=、%=的效果
        - 声明short型变量s，演示简单赋值运算的自增10，演示扩展赋值运算的自增10
        * */

        //声明一个整型变量，演示扩展赋值+=、-=、*=、/=、%=的效果
        int f = 120;
        f -= 12;
        System.out.println(f);//108
        f += 24;
        System.out.println(f);//132
        f *= 2;
        System.out.println(f);//264
        f /= 2;
        System.out.println(f);//132
        f %= 2;
        System.out.println(f);//0
        //声明short型变量s，演示简单赋值运算的自增10，演示扩展赋值运算的自增1
        short s = 12;
        s = (short) (s + 10);
        s += 10;
        System.out.println("s = " + s); //32


        /*
        1. 运算符的练习：字符串连接

       - 声明整型变量age和字符串型变量name，输出字符串连接的结果
       - 输出几个数据的拼接，演示字符串连接的同化作用

        * */

        //声明整型变量age和字符串型变量name，输出字符串连接的结果
        int age = 18;
        String name = "张三";
        System.out.println("age = " + age + "name=" + name);

        //输出几个数据的拼接，演示字符串连接的同化作用
        System.out.println(12 + 32 + 43 + ""); //87
        System.out.println(12 + "" + 12 + 32 + 43); //12123243
        System.out.println(12 + 12 + 32 + "" + 43); //5643


        /*
        1. 运算符的练习：条件/三目

       - 声明并初始化整型变量，使用条件运算符实现：若>0则给flag赋值为1，否则赋值为0
       - 声明两个整型变量，使用条件运算符实现：求这两个变量的最大值

        * */

        //声明并初始化整型变量，使用条件运算符实现：若>0则给flag赋值为1，否则赋值为0
        int bb = 123;
        int flag = bb > 0 ? 1 : 0;
        System.out.println("flag: " + flag);
        //声明两个整型变量，使用条件运算符实现：求这两个变量的最大值
        int i = 32, j = 43;
        int max = i > j ? i : j;
        System.out.println("max: " + max);


        Scanner scanner = new Scanner(System.in);
        double price = 0.0;
        int score = 0;

        /*
        7. 分支结构的练习：if

       - 满500打8折
       - 判断成绩是否合法
        */


        //满500打8折
        System.out.print("请输入消费金额：");
        price = scanner.nextDouble();
        if (price > 500) {
            System.out.println("本店活动，满500打8折");
            price *= 0.8;
        }
        System.out.println("实际花费金额：" + price);

        //判断成绩是否合法
        System.out.print("请输入考试成绩：");
        score = scanner.nextInt();
        if (score > 0 && score < 100) {
            System.out.println("成绩合法");
        }


        /*
        3. 分支结构的练习：if...else

       - 满500打8折，不满500打9折
       - 判断成绩合法还是不合法

        * */

        //满500打8折，不满500打9折
        System.out.print("请输入消费金额：");
        price = scanner.nextDouble();
        if (price > 500) {
            System.out.println("本店活动，满500打8折");
            price *= 0.8;
        } else {
            System.out.println("本店活动，不满500打9折");
            price *= 0.9;
        }

        System.out.println("实际花费金额：" + price);


        //判断成绩合法还是不合法
        System.out.print("请输入考试成绩：");
        score = scanner.nextInt();
        if (score > 0 && score < 100) {
            System.out.println("成绩合法");
        } else {
            System.out.println("成绩不合法");
        }


        /*

        9. 分支结构的练习：if...else if

           - 满2000打5折，满1000不满2000打7折，满500不满1000打8折，不满500打9折
        */

        //满2000打5折，满1000不满2000打7折，满500不满1000打8折，不满500打9折
        System.out.print("请输入消费金额：");
        price = scanner.nextDouble();
        if (price > 2000) {
            System.out.println("本店活动，满2000打5折");
            price *= 0.5;
        } else if (price > 1000) {
            System.out.println("本店活动，满1000不满2000打7折");
            price *= 0.7;
        } else if (price > 500) {
            System.out.println("本店活动，满500不满1000打8折");
            price *= 0.8;
        } else {
            System.out.println("不满500打9折");
            price *= 0.9;
        }
        System.out.println("实际花费金额：" + price);


    }
}
